package es.amh.management;

import java.util.List;

import com.google.gdata.data.calendar.CalendarEntry;
import com.google.gdata.util.NotImplementedException;

import es.amh.data.BirthdayEntry;

public interface ICalendarManagement {

	/**
	 * Conecta el servicio con los datos dados
	 * 
	 * @param _user
	 * @param _password
	 * @return ok, si la conexión ha sido exitosa false en caso contrario
	 */
	public abstract boolean connectService(String _user, String _password);

	public abstract CalendarEntry resetBirthdayCalendar() throws NotImplementedException;

	/**
	 * Crea un calendario de cumpleaños si previamente no existe.
	 * 
	 * @return
	 */
	public abstract CalendarEntry createBirthdayCalendar();

	/**
	 * Borra el calendario de cumpleaños (si existe)
	 * 
	 * @return true si todo va bien false en caso contrario
	 */
	public abstract boolean deleteBirthdayCalendar();

	/**
	 * Guarda en el calendario de internet todos los cumpleaños recibidos que no
	 * estén todavía contenidos en el calendario.
	 * 
	 * @param _birthdayList
	 *            Lista completa de cumpleaños del contacto
	 * @return Número de actualizaciones
	 */
	public abstract int[] commitBirthdays(List<BirthdayEntry> _birthdayList);

	public abstract int getProgress();

}